আমাজন আরডিএস (Amazon RDS)

Python boto3 SDK দিয়ে ডেটাবেস পরিচালনা

Database Tutorials - আমাজন আরডিএস (Amazon RDS) - RDS API এবং SDK দিয়ে Integration | NCTB BOOK

Boto3 হল Amazon Web Services (AWS) এর জন্য Python SDK, যা AWS সেবা যেমন EC2, S3, DynamoDB, RDS ইত্যাদি ব্যবহার করতে সাহায্য করে। Python এর মাধ্যমে Boto3 ব্যবহার করে আপনি Amazon RDS ডেটাবেস ইনস্ট্যান্স তৈরি, কনফিগার, মনিটর এবং ম্যানেজ করতে পারেন।

এখানে Boto3 ব্যবহার করে Amazon RDS ডেটাবেস পরিচালনার জন্য কিছু সাধারণ কাজ দেখানো হল:

১. Boto3 ইনস্টলেশন

প্রথমে, আপনাকে Boto3 প্যাকেজটি ইনস্টল করতে হবে:

pip install boto3

২. AWS ক্রেডেনশিয়াল কনফিগারেশন

AWS রিসোর্স ব্যবহার করার জন্য আপনাকে আপনার AWS Access Key এবং Secret Key কনফিগার করতে হবে। আপনি এগুলি AWS IAM থেকে পেতে পারেন। এরপর, আপনাকে Boto3 কে AWS ক্রেডেনশিয়াল দেখানোর জন্য aws configure কমান্ডটি চালাতে হবে:

aws configure

এটি আপনাকে Access Key ID, Secret Access Key, Region, এবং Output Format ইনপুট দিতে বলবে।


৩. RDS ইন্সট্যান্স তৈরি করা

আপনার কোডে, Boto3 ব্যবহার করে একটি নতুন RDS ইন্সট্যান্স তৈরি করার উদাহরণ:

import boto3

# Boto3 রিসোর্স বা ক্লায়েন্ট তৈরি করা
rds_client = boto3.client('rds')

# RDS ইনস্ট্যান্স তৈরি করা
response = rds_client.create_db_instance(
    DBInstanceIdentifier='my-db-instance',  # ইনস্ট্যান্সের নাম
    DBInstanceClass='db.t3.micro',  # ইনস্ট্যান্স ক্লাস
    Engine='mysql',  # ডাটাবেস ইঞ্জিন (mysql, postgres, aurora ইত্যাদি)
    MasterUsername='admin',  # অ্যাডমিন ইউজার
    MasterUserPassword='password123',  # পাসওয়ার্ড
    AllocatedStorage=20,  # স্টোরেজ আকার (GB)
    VpcSecurityGroupIds=['sg-xxxxxxxx'],  # VPC সিকিউরিটি গ্রুপ আইডি
    BackupRetentionPeriod=7,  # ব্যাকআপ রাখার দিন সংখ্যা
    AvailabilityZone='us-east-1a',  # অ্যাভেইলেবিলিটি জোন
)

print(response)

৪. RDS ইনস্ট্যান্স রিস্টোর করা

আপনি যদি কোনো স্ন্যাপশট থেকে ডেটাবেস রিস্টোর করতে চান, তবে নিচের কোড ব্যবহার করতে পারেন:

import boto3

# Boto3 রিসোর্স বা ক্লায়েন্ট তৈরি করা
rds_client = boto3.client('rds')

# স্ন্যাপশট থেকে ডেটাবেস রিস্টোর করা
response = rds_client.restore_db_instance_from_db_snapshot(
    DBInstanceIdentifier='restored-db-instance',  # নতুন ইনস্ট্যান্সের নাম
    DBSnapshotIdentifier='my-db-snapshot',  # স্ন্যাপশট আইডি
)

print(response)

৫. RDS ইনস্ট্যান্সের স্ট্যাটাস চেক করা

RDS ইনস্ট্যান্সের স্ট্যাটাস বা সিস্টেম ইনফরমেশন চেক করতে:

import boto3

# Boto3 রিসোর্স বা ক্লায়েন্ট তৈরি করা
rds_client = boto3.client('rds')

# ইনস্ট্যান্সের তথ্য পাওয়ার জন্য describe_db_instances() ব্যবহার করা
response = rds_client.describe_db_instances()

for db_instance in response['DBInstances']:
    print(f"DB Instance Identifier: {db_instance['DBInstanceIdentifier']}")
    print(f"DB Instance Status: {db_instance['DBInstanceStatus']}")

৬. RDS ইনস্ট্যান্স মুছে ফেলা

যদি আপনি কোনো ইনস্ট্যান্স মুছে ফেলতে চান:

import boto3

# Boto3 রিসোর্স বা ক্লায়েন্ট তৈরি করা
rds_client = boto3.client('rds')

# RDS ইনস্ট্যান্স মুছে ফেলা
response = rds_client.delete_db_instance(
    DBInstanceIdentifier='my-db-instance',  # মুছে ফেলার ইনস্ট্যান্সের নাম
    SkipFinalSnapshot=True  # স্ন্যাপশট না নেওয়ার জন্য
)

print(response)

৭. RDS ইনস্ট্যান্সের মেট্রিকস মনিটর করা

RDS ইনস্ট্যান্সের মেট্রিকস যেমন CPU ব্যবহার, ডিস্ক I/O, মেমরি ব্যবহার মনিটর করতে CloudWatch ব্যবহার করা হয়:

import boto3

# Boto3 ক্লায়েন্ট তৈরি করা
cloudwatch_client = boto3.client('cloudwatch')

# RDS ইনস্ট্যান্সের মেট্রিকস চেক করা
response = cloudwatch_client.get_metric_data(
    MetricDataQueries=[
        {
            'Id': 'cpu_utilization',
            'MetricStat': {
                'Metric': {
                    'Namespace': 'AWS/RDS',
                    'MetricName': 'CPUUtilization',
                    'Dimensions': [
                        {
                            'Name': 'DBInstanceIdentifier',
                            'Value': 'my-db-instance'
                        }
                    ]
                },
                'Period': 60,
                'Stat': 'Average',
            },
            'ReturnData': True,
        },
    ],
    StartTime='2023-10-01T00:00:00Z',
    EndTime='2023-10-02T00:00:00Z',
)

print(response)

৮. RDS ইনস্ট্যান্সের স্ন্যাপশট তৈরি করা

আপনি RDS ইনস্ট্যান্সের একটি স্ন্যাপশট তৈরি করতে পারেন:

import boto3

# Boto3 ক্লায়েন্ট তৈরি করা
rds_client = boto3.client('rds')

# ইনস্ট্যান্সের স্ন্যাপশট তৈরি করা
response = rds_client.create_db_snapshot(
    DBSnapshotIdentifier='my-db-snapshot',  # স্ন্যাপশটের নাম
    DBInstanceIdentifier='my-db-instance',  # ডাটাবেস ইনস্ট্যান্সের নাম
)

print(response)

বিভিন্ন RDS অপারেশন:

  • create_db_instance(): নতুন ডাটাবেস ইনস্ট্যান্স তৈরি করা।
  • describe_db_instances(): সমস্ত ডাটাবেস ইনস্ট্যান্সের তথ্য পাওয়ার জন্য।
  • delete_db_instance(): ডাটাবেস ইনস্ট্যান্স মুছে ফেলা।
  • restore_db_instance_from_db_snapshot(): স্ন্যাপশট থেকে ডাটাবেস রিস্টোর করা।
  • create_db_snapshot(): ডাটাবেসের স্ন্যাপশট তৈরি করা।
  • modify_db_instance(): ডাটাবেসের কনফিগারেশন পরিবর্তন করা।

উপসংহার:

Boto3 SDK ব্যবহার করে আপনি Amazon RDS ডাটাবেস ইনস্ট্যান্স তৈরি, কনফিগার, পরিচালনা এবং মনিটর করতে পারেন। এটি অত্যন্ত শক্তিশালী এবং নমনীয় একটি টুল, যা আপনার AWS রিসোর্সকে অটোমেট করতে সাহায্য করবে। Python দিয়ে RDS ইন্সট্যান্স পরিচালনা করার মাধ্যমে আপনি AWS রিসোর্সের কার্যক্রম সহজ এবং দ্রুত করতে পারেন।

Content added By
Promotion